package de.revdev.streckenliste.beans;

import de.revdev.streckenliste.beans.exception.SLNichtAbgschlossenException;
import de.revdev.streckenliste.dao.RevierDAO;
import de.revdev.streckenliste.dao.StreckenlisteDAO;
import de.revdev.streckenliste.entities.Revier;
import de.revdev.streckenliste.entities.Streckenliste;
import java.util.Collection;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.LocalBean;
import javax.ejb.Stateful;
import javax.validation.ConstraintViolationException;

/**
 *
 * @author f.lindermaier
 */
@Stateful
@LocalBean
public class SlBuilder {

    @EJB
    private StreckenlisteDAO sldao;
    @EJB
    private RevierDAO rdao;

    public Streckenliste erstelleSL(Revier revier, String jahr) throws SLNichtAbgschlossenException {
        Collection<Streckenliste> lstSL = rdao.edit(revier).getStreckenListen();
        for (Streckenliste sl : lstSL) {
            if (sl.isIstAbgeschlossen() == false) {
                throw new SLNichtAbgschlossenException(sl);
            }
        }
        Streckenliste sl = new Streckenliste();
        sl.setIstAbgeschlossen(false);
        sl.setRevier(revier);
        sl.setJagdJahr(jahr);
        try {
            sldao.create(sl);
        } catch (ConstraintViolationException cve) {
            System.out.println(cve.getMessage());
        } catch (RuntimeException re) {
            System.out.println("Fehler");
        } catch (Exception e) {
            System.out.println("Fehler");
        }
        return sl;
    }

    public List<Streckenliste> holeStreckenlisten(Revier revier) {
        return sldao.holeStreckenlisten(revier);
    }
}